package com.jubao.ejb.entity.callback;

import java.util.Calendar;

import javax.persistence.PrePersist;
import javax.persistence.PreUpdate;

import org.apache.log4j.Logger;

import com.jubao.ejb.entity.GeneEntity;

/**
 * http://docs.jboss.org/ejb3/app-server/tutorial/callbacks/callbacks.html
 * 
 * @author Conan
 * 
 */
public class GeneEntityCallbackListener {
	Logger logger = Logger.getLogger(GeneEntityCallbackListener.class.getName());

	@PrePersist
	public void doPrePersist(GeneEntity ge) {
		logger.info("doPrePersist: About to create GeneEntity("+ge.getClass().getName()+"): " + ge.getSysId());
		Calendar now = Calendar.getInstance();
		ge.setCreatedDate(now.getTimeInMillis());
		ge.setLastUpdatedDate(now.getTimeInMillis());
	}

	@PreUpdate
	public void doPreUpdate(GeneEntity ge) {
		logger.info("doPreUpdate: About to update GeneEntity("+ge.getClass().getName()+"): " + ge.getSysId());
		Calendar now = Calendar.getInstance();
		ge.setLastUpdatedDate(now.getTimeInMillis());
	}

	// @PostPersist
	// public void doPostPersist(GeneEntity ge) {
	// logger.info("doPostPersist: Created GeneEntity("+ge.getClass().getName()+"): " + ge.getSysId());
	// }
	//
	// @PreRemove
	// public void doPreRemove(GeneEntity ge) {
	// logger.info("doPreRemove: About to delete GeneEntity("+ge.getClass().getName()+"): " + ge.getSysId());
	// }
	//
	// @PostRemove
	// public void doPostRemove(GeneEntity ge) {
	// logger.info("doPostRemove: Deleted GeneEntity("+ge.getClass().getName()+"): " + ge.getSysId());
	// }
	//
	//
	// @PostUpdate
	// public void doPostUpdate(GeneEntity ge) {
	// logger.info("doPostUpdate: Updated GeneEntity("+ge.getClass().getName()+"): " + ge.getSysId());
	// }
	//
	// @PostLoad
	// public void doPostLoad(GeneEntity ge) {
	// logger.info("doPostLoad: Loaded GeneEntity("+ge.getClass().getName()+"): " + ge.getSysId());
	// }
	
}
